package com.only4play.portal.common.session;

/**
 * @author liyuncong
 * @version 1.0
 * @file InternalSessionManager
 * @brief InternalSessionManager
 * @details InternalSessionManager
 * @date 2024-06-07
 *
 * Edit History
 * ----------------------------------------------------------------------------
 * DATE                     NAME               DESCRIPTION
 * 2024-06-07               liyuncong          Created
 */
public interface InternalSessionManager {

    InternalSession findSession(String id);

    InternalSession createSession(String sessionId);

    void remove(InternalSession session);

    void remove(InternalSession session, boolean update);

    void add(InternalSession session);

    int getActiveSessions();

    InternalSession createEmptySession();

    InternalSession[] findSessions();

    void backgroundProcess();

    void setMaxInactiveInterval(int interval);

    void setProcessExpiresFrequency(int processExpiresFrequency);

    void setBackgroundProcessorDelay(int backgroundProcessorDelay);

    void setMaxActiveSessions(int max);
}
